//################################
// 版权所有：鸽子游戏俱乐部
// 系统名称：鸽子游戏俱乐部-移动版
// 文件名称：storageUtil.js
// 创建时间：2016年09月20日
// 创建人员：Lemo
// 功能说明：本地存储工具组件
//################################

'use strict';

import SimpleStore from 'react-native-simple-store';
import CommonData from '../common';


function saveUserList(userList, callback = null) {
    SimpleStore.save('UserList', userList)
    .then(() => {
        callback && callback(true);
    })
    .catch((error) => {
        callback && callback(false);
    });
}

function getUserList(callback) {
    SimpleStore.get('UserList')
    .then((userList) => {
        callback && callback(userList);
    });
}

function saveIsUpdatePending(isUpdatePending, callback = null) {
    SimpleStore.save('IsUpdatePending', isUpdatePending)
    .then(() => {
        callback && callback(true);
    })
    .catch((error) => {
        callback && callback(false);
    });
}

function getIsUpdatePending(callback) {
    SimpleStore.get('IsUpdatePending')
    .then((isUpdatePending) => {
        callback && callback(isUpdatePending);
    });
}

function saveErrorLogs(errorLogs, callback = null){
    SimpleStore.save('PandaErrorLogs', errorLogs)
    .then(() => {
        callback && callback(true);
    })
    .catch((error) => {
        callback && callback(false);
    });
}

function getErrorLogs(callback) {
    SimpleStore.get('PandaErrorLogs')
    .then((errorLogs) => {
        if (errorLogs === null) {
            errorLogs = [];
        }
        callback && callback(errorLogs);
    });
}

function saveErrorLog(errorLog) {
    getErrorLogs((errorLogs) => {
        errorLogs.push(errorLog);
        saveErrorLogs(errorLogs);
    });
}

function initialErrorLogs() {
    getErrorLogs((errorLogs) => {
        if (errorLogs && errorLogs.length > 0) {
            if (errorLogs.length > 50) {
                errorLogs.splice(0, errorLogs.length - 50);
            }
        }
        else {
            errorLogs = [];
        }

        saveErrorLogs(errorLogs);
    });
}

function clearErrorLogs() {
    saveErrorLogs([]);
}

//存储我的日程事件列表
function saveMyAgendaList(myAgendaList, callback = null) {
    SimpleStore.save('myAgendaList_'+CommonData.userId, myAgendaList)
    .then(() => {
        callback && callback(true);
    })
    .catch((error) => {
        callback && callback(false);
    });
}
//获取本地存储的我的日程事件列表
function getMyAgendaList(callback) {
    SimpleStore.get('myAgendaList_'+CommonData.userId)
    .then((myAgendaList_) => {
        callback && callback(myAgendaList_);
    });
}


module.exports = {
    saveUserList,
    getUserList,
    saveIsUpdatePending,
    getIsUpdatePending,
    saveErrorLogs,
    getErrorLogs,
    saveErrorLog,
    initialErrorLogs,
    clearErrorLogs,
    saveMyAgendaList,
    getMyAgendaList,
};